Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 10 Einige wichtige .NET-Klassen
  gp 10.1 Die Klasse »Object«
    gp 10.1.1 Der Konstruktor
    gp 10.1.2 Die Methoden der Klasse »Object«
  gp 10.2 Die Klasse »String«
    gp 10.2.1 Das Erzeugen eines Strings
    gp 10.2.2 Unveränderliche »String«-Objekte
    gp 10.2.3 Die Eigenschaften von »String«
    gp 10.2.4 Die Methoden der Klasse »String«
    gp 10.2.5 Zusammenfassung der Klasse »String«
  gp 10.3 Die Klasse »StringBuilder«
    gp 10.3.1 Allgemeines
    gp 10.3.2 Die Kapazität eines »StringBuilder«-Objekts
    gp 10.3.3 Die Konstruktoren der Klasse »StringBuilder«
    gp 10.3.4 Die Eigenschaften der Klasse »StringBuilder«
    gp 10.3.5 Die Methoden der Klasse »StringBuilder«
    gp 10.3.6 Allgemeine Anmerkungen
  gp 10.4 Der Typ »DateTime«
    gp 10.4.1 Die Zeitspanne »Tick«
    gp 10.4.2 Die Konstruktoren von »DateTime«
    gp 10.4.3 Die Eigenschaften von »DateTime«
    gp 10.4.4 Die Methoden der Klasse »DateTime«
    gp 10.4.5 Die Klasse »TimeSpan«
  gp 10.5 Die Klasse »Array«
    gp 10.5.1 Das Erzeugen eines »Array«-Objekts
    gp 10.5.2 Die Eigenschaften eines »Array«-Objekts
    gp 10.5.3 Die Methoden der Klasse »Array«
    gp 10.5.4 Array-Elemente sortieren
  gp 10.6 Ausgabeformatierung
    gp 10.6.1 Formatierung mit der Methode »String.Format«
    gp 10.6.2 Formatierung mit der Methode »ToString«
    gp 10.6.3 Benutzerdefinierte Formatierung


Galileo Computing

10.6 Ausgabeformatierung  downtop

Zur Formatierung einer Ausgabe stehen Ihnen zwei Möglichkeiten zur Verfügung:

gp  Die statische Methode Format der Klasse String
gp  Die Methode ToString der Schnittstelle IFormatable

Galileo Computing

10.6.1 Formatierung mit der Methode »String.Format«  downtop

Rufen wir uns zuerst in Erinnerung, wie die Ausgabe der Methode DateTime.Now an der Konsole lautet:


Console.WriteLine(DateTime.Now.ToString())

Es wird das Datum einschließlich der Uhrzeit angezeigt:


17.09.2003 20:51:56

Mit der Format-Methode können wir eine andere, individuell passendere Ausgabe erzwingen:


Console.WriteLine(String.Format("{0:F}", DateTime.Now))

Damit würde die Anzeige lauten:


Mittwoch, 17. September 2003 20:51:56

Es bietet sich auch die Möglichkeit an, mit


Console.WriteLine(String.Format("{0:D}", DateTime.Now))

auf die Zeitangabe ganz zu verzichten.

Formatierungsvarianten

Die einfachsten Varianten der überladenen Format-Methode lauten:


Public Shared Function Format(format As String, arg As Object) As String
Public Shared Function Format(format As String, _
ParamArray args As Object()) As String

Der erste Parameter beschreibt eine Zeichenfolge mit einem oder mehreren Formatierungsausdrücken, die in geschweiften Klammern angegeben werden. Dem zweiten Parameter werden die zu formatierenden Objekte übergeben. Die Syntax erinnert sofort an die Formatierungen der Methode Console.WriteLine, die sich tatsächlich intern der Format-Methode bedient.

Unter den weiteren vier Überladungen ist eine besonders hervorzuheben, mit der festgelegt werden kann, welche Sprache bzw. Kultur für die Formatierung verwendet werden soll:


Public Shared Function Format(provider As IFormatProvider,
format As String, ParamArray args As Object()) As String

Im ersten Parameter erwartet die Methode String.Format nun ein Objekt, das die Schnittstelle IFormatProvider implementiert. Im .NET Framework sind das drei Klassen

gp  CultureInfo
gp  DateTimeFormatInfo
gp  NumberFormatInfo

Diese Klassen gehören alle zum Namespace System.Globalization. CultureInfo stellt Informationen über eine bestimmte Kultur bereit, einschließlich des Schriftsystems sowie des verwendeten Kalenders. DateTimeFormatInfo definiert die Anzeige von Datum und Uhrzeit und NumberFormatInfo die Darstellung numerischer Werte – immer abhängig von der jeweiligen Kultur.

Um beispielsweise das aktuelle Systemdatum in italienischer Sprache auszugeben, müssen Sie nur ein entsprechendes CultureInfo-Objekt bereitstellen, das die italienische Kultur beschreibt:


Dim culture As CultureInfo = New CultureInfo("it-IT")
Console.WriteLine(String.Format(culture, "{0:D}", DateTime.Now))
' Ausgabebeispiel: sabato 20 settembre 2003

Mit den Eigenschaften DateTimeFormat und NumberFormat der Klasse CultureInfo kann das Ausgabeformat der spezifischen Kultur abgefragt und sogar neu festgelegt werden. Dazu veröffentlichen die beiden Klassen DateTimeFormatInfo und NumberFormatInfo eine größere Anzahl Eigenschaften. Wie Sie das Dezimaltrennzeichen einer gegebenen Kultur abweichend vom Standard spezifisch festlegen können, zeigt das folgende Codefragment.


Dim dbl As Double = 12.25
Dim culture As cultureInfo = New CultureInfo("de-DE")
Dim nfi As NumberFormatInfo = culture.NumberFormat
nfi.NumberDecimalSeparator = "*"
Console.WriteLine(String.Format(culture, "{0}", dbl))

Es wird zuerst ein CultureInfo-Objekt erzeugt, das mit de-DE die deutsche Kultur beschreibt. Über dessen Eigenschaft NumberFormat wird die dazu entsprechende Referenz auf NumberFormatInfo ermittelt. Für die Eigenschaft NumberDecimalSeparator wird anschließend das Zeichen »*« als neues Dezimaltrennzeichen festgelegt.

Es kann sich als nützlich erweisen, ein kulturunabhängiges Format zur Verfügung zu stellen. Dieses erhalten Sie mit der statischen Eigenschaft InvariantCulture der Klasse CultureInfo. Das zurückgegebene CultureInfo-Objekt ist der englischen Sprache zugeordnet, ohne dabei landesspezifische Unterschiede zu berücksichtigen.

Standardformatzeichen der Klasse »NumberFormatInfo«

In der folgenden Tabelle sind die Standardformatzeichen für die einzelnen Standardmuster der NumberFormatInfo-Klasse aufgeführt. Teilweise können die Standardmuster auch durch Eigenschaften verändert werden. Genauere Informationen dazu entnehmen Sie bitte der .NET-Dokumentation zu der Klasse.


Tabelle 10.9     Formatzeichen der Methode »String.Format«

Formatzeichen Beschreibung
C oder c Ausgabe im Währungsformat (einschließlich dem Währungssymbol der aktuellen Ländereinstellung).
D oder d Wird nur von ganzzahligen Datentypen unterstützt. Durch das Anhängen einer Zahl kann spezifiziert werden, wie viele Stellen die auszugebende Zahlenfolge aufweisen soll. Fehlende Ziffern werden mit Nullen aufgefüllt.
E oder e Ausgabe im Exponentialformat.
F oder f Hängt an das Ende einer Zahl Dezimalstellen an. Die Anzahl der Nachkommastellen kann hinter dem Formatspezifizierer angegeben werden. Der Standard sind zwei Stellen.
G oder g Allgemein formatierte Ausgabe.
N oder n Die Ausgabe erfolgt im Format ddd.ddd.ddd,dd.
P oder p Ausgabe als Prozentzahl.
R oder r Round-Trip-Format. Es wird sichergestellt, dass ein Zurückkonvertieren nicht zu Genauigkeitsverlusten führt.
X oder x Ausgabe als Hexadezimalzahl (ausschließlich für Ganzzahlenformate)

Standardformatzeichen der Klasse »DateTimeFormatInfo«

In der folgenden Tabelle sind die wichtigsten Standardmuster zur Formatierung von Datum und Uhrzeit aufgezählt. Maßgeblich sind auch hier die Einstellungen unter Ländereinstellung. Wie schon die Standardformatmuster der Klasse NumberFormatInfo können Sie über Eigenschaften einige der Standardmuster nach eigenen Vorstellungen ändern. Weitere Informationen entnehmen Sie auch hier der .NET-Dokumentation.


Tabelle 10.10     Formatcodes für Datum und Uhrzeit

Formatzeichen Beschreibung
d Kurzes Datum (22.09.2003)
D Langes Datum (Montag, 22. September 2003)
f Langes Datum, inkl. Zeitangabe (Montag, 22. September 2003 22:30)
F Langes Datum, inkl. langer Zeitangabe (Montag, 22. September 2003 22:30:45)
g Kurzes Datum, inkl. Zeitangabe (22.09.2003 22:30)
G Kurzes Datum, inkl. langer Zeitangabe (22.09.2003 22:30:45)
M oder m Tag und Monat (22 September)
R oder r Datum nach dem Muster des RFC1123 (Mon, 22 Sep 2003 22:30:45 GMT)
t Kurze Zeitangabe (22:30)
T Lange Zeitangabe (22:30:45)
Y oder y Monat und Jahr (September 2003)

Dazu zwei Beispiele:


Dim str As String
str = String.Format("{0:F}", DateTime.Now)
str = String.Format("{0:M}", DateTime.Now)


Galileo Computing

10.6.2 Formatierung mit der Methode »ToString«  downtop

Von der Klasse Object erbt jede .NET-Klasse die parameterlose Methode ToString. Darüber hinaus werden sowohl von den numerischen Typen als auch von der Klasse String Überladungen angeboten, die direkt auf dem zu formatierenden Wert aufgerufen werden. Sie können sich zum Beispiel mit


Dim d As Single = 0.01985F
Console.WriteLine(d.ToString("P"))

die Single-Zahl als Prozentzahl oder mit


Dim d As Single = 0.01985F
Console.WriteLine(d.ToString("E"))

im Exponentialformat ausgeben lassen. Auch hier wird die Einstellung der aktuellen Kultur berücksichtigt. Sie können als Formatierungszeichenfolge alle Formatzeichen angeben, die in den Tabellen 10.9 und 10.10 aufgeführt sind. Die geschweiften Klammern sind nicht erforderlich. Um landesspezifische Ausgaben zu ermöglichen, ist auch die Übergabe eines IFormatProvider-Objekts möglich.


Public Overridable Function ToString(IFormatProvider) As String

Beachten Sie, dass die verschiedenen Datentypen unterschiedlich viele Überladungen von ToString zur Verfügung stellen.


Galileo Computing

10.6.3 Benutzerdefinierte Formatierung  toptop

Zahlen und Zeichenfolgen

Über die vordefinierten Formate hinaus können Sie auch eigene Formatierungen festlegen. Dazu wird Ihnen von .NET eine Reihe von Formatzeichen bereitgestellt, um die Ausgabe von Ganz- und Dezimalzahlen sowie Zeichenfolgen nach eigenen Vorstellungen zu beeinflussen.


Tabelle 10.11     Formatzeichen für benutzerdefinierte Zahlen- und Zeichenformate

Formatzeichen Beschreibung
0 Die Zahl 0 dient als Platzhalter für eine Zahl. Nichtsignifikante Nullen werden durch die Zahl 0 dargestellt.
# Die Zahl 0 dient als Platzhalter für eine Zahl. Nichtsignifikante Nullen werden durch Leerzeichen dargestellt.
. Das erste '.'-Zeichen in der Formatzeichenfolge bestimmt die Position des Dezimaltrennzeichens im formatierten Wert.
, Dient als Tausendertrennung. Jedes Auftreten des Zeichens bewirkt eine Division durch 1000.
% Das Zeichen bewirkt die Multiplikation mit 100. Das Prozentzeichen wird angehängt.
E0, E+0, E-0, e0, e+0, e-0 Die Codes bewirken die Exponentialdarstellung einer Zahl. Mit E+0 und e+0 wird das Vorzeichen immer angezeigt, mit allen anderen immer nur das negative. Die Anzahl der Nullen bestimmt die Mindestanzahl von Ziffern des Exponenten.
\ Das folgende Zeichen in der Formatzeichenfolge wird als Escape-Sequenz interpretiert.
“ABC” Die in Anführungszeichen stehenden Zeichen werden direkt in die Ergebniszeichenfolge kopiert.

Nachfolgend wird an einigen Beispielen gezeigt, wie die Formatzeichen eingesetzt werden und zu welchem Ergebnis die Anweisungen führen.


Dim d As Double = 12345.6789
Dim str As String = d.ToString("000") ' Ausgabe: 12346
str = d.ToString("0000000") ' Ausgabe: 00123456
str = d.ToString("###") ' Ausgabe: 12346
str = d.ToString("#,#####") ' Ausgabe: 12.346
str = d.ToString("#.##") ' Ausgabe: 12345,68
str = d.ToString("#.#####") ' Ausgabe: 12345,6789
str = d.ToString("000e+000") ' Ausgabe: 123e+002
str = d.ToString("0%") ' Ausgabe: 1234568%

Datums- und Zeitangaben

Wenn Sie wollen, können Sie mit vordefinierten Codes eigene Mustervorgaben zur Darstellung des Datums und der Uhrzeit festzulegen. Die Codes werden von der Klasse DateTimeFormatInfo bereitgestellt.


Dim str As String
str = DateTime.Now.ToString("MMM/yyyy/dd")
' Ausgabebeispiel: Sep.2004.12
str = DateTime.Now.ToString("HH:mm:ss")
' Ausgabebeispiel: 09:22:30


Tabelle 10.12     Formatzeichen für benutzerdefinierte Datum- und Zeitformate

Formatmuster Beschreibung
d Monatstag ohne führende 0 (1 – 31)
dd Monatstag mit führender 0 (01 – 31)
ddd Abkürzung des Wochentags (Mon)
dddd Vollständiger Name des Wochentags (Montag)
M Monat ohne führende 0 (1 – 12)
MM Monat mit führender 0 (01 – 12)
MMM Abkürzung des Monatsnamens (Jan)
MMMM Vollständiger Monatsname (Januar)
y Zweistellige Jahreszahl ohne führende 0 (3)
yy Zweistellige Jahreszahl mit führender 0 (03)
yyyy Vollständige Jahreszahl (2003)
gg Angabe der Zeitära
h Stundenangabe in 12-Stunden-Schreibweise ohne führende 0
hh Stundenangabe in 12-Stunden-Schreibweise mit führender 0
H Stundenangabe in 24-Stunden-Schreibweise ohne führende 0
HH Stundenangabe in 24-Stunden-Schreibweise mit führender 0
m Minutenangabe ohne führende 0 (0 – 59)
mm Minutenangabe mit führender 0 (00 – 59)
s Sekundenangabe ohne führende 0 (0 – 59)
ss Sekundenangabe mit führender 0 (0 – 59)
f – ffffff Angabe von Sekundenbruchteilen
t Das erste Zeichen des AM-/PM-Kennzeichners (A entspricht AM, P entspricht PM)
tt AM oder PM
z Zeitzonenangabe (»+« oder »–«, gefolgt von der Stundenangabe; ohne führende 0)
zz Zeitzonenangabe (»+« oder »–«, gefolgt von der Stundenangabe; mit führender 0)
zzz Vierstellige Zeitzonenangabe
/ Es wird das Standardtrennzeichen für Datumsangaben eingesetzt.
: Es wird das Standardtrennzeichen für Zeitangaben eingesetzt.

 

 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de